What Is ERC-20? The Ethereum Token Standard Explained Simply

Yara Fernandez
Yara Fernandez
Crypto Regulation & Policy Press Release Expert
Published 2026-05-13
Updated 2026-05-13
What Is ERC-20? The Ethereum Token Standard Explained Simply Article Image

ERC-20: The Standard That Powers the Token Economy

If you've ever invested in a crypto presale, held a DeFi governance token, or traded on Uniswap, you've interacted with ERC-20. This standard — a set of rules every Ethereum token must follow — is the foundational infrastructure that makes the entire token ecosystem interoperable and investable. Understanding it is the difference between treating tokens as black boxes and understanding what you actually own.

The ERC-20 Interface: What Every Token Must Implement

FunctionWhat It DoesInvestor Relevance
totalSupply()Returns total tokens in existenceVerify supply matches whitepaper
balanceOf(address)Returns token balance for any walletCheck your own balance
transfer(to, amount)Send tokens to another addressWhere transfer taxes are implemented
approve(spender, amount)Grant contract permission to spend your tokensRequired before DEX swaps
transferFrom(from, to, amount)Execute an approved token spendUsed by DEXs after your approval
allowance(owner, spender)Returns remaining approved amountMonitor and revoke old approvals
name() / symbol() / decimals()Token metadataVerify token identity

The Approval Mechanism: Understanding the Risk

The approve/transferFrom pattern creates a permission system that powers DeFi but introduces security considerations:

  1. You call approve(uniswap_router, 1000e18) — granting Uniswap permission to move 1,000 tokens
  2. Uniswap calls transferFrom(your_wallet, pool, 1000e18) — executing the swap
  3. The approval persists after the swap — Uniswap could theoretically move more tokens later

Best practice: revoke approvals after completing transactions using revoke.cash for Ethereum and its L2s.

How to Read an ERC-20 Contract Safely

  1. Find the contract on Etherscan — verify green checkmark (source published)
  2. Click 'Read Contract' → call owner() — who has admin control?
  3. Search source code for: mint, pause, blacklist, setFee, upgradeTo
  4. For each found function: who can call it? Is there a maximum cap? Is there a timelock?
  5. Check totalSupply() divided by 10^decimals — matches whitepaper claim?

ERC-20 on Different EVM Networks

NetworkStandard NameGas TokenExplorer
Ethereum MainnetERC-20ETHetherscan.io
BNB Smart ChainBEP-20BNBbscscan.com
BaseERC-20 (same standard)ETHbasescan.org
ArbitrumERC-20 (same standard)ETHarbiscan.io
PolygonERC-20 (same standard)MATIC/POLpolygonscan.com

Glossary

ERC-20
Ethereum Request for Comments #20 — the technical standard defining fungible token rules on Ethereum and EVM-compatible chains.
Allowance
The amount of tokens a specific contract is permitted to spend from your wallet, set via the approve() function.
Fungible
Interchangeable — one unit is identical to any other unit (1 USDT = 1 USDT, as opposed to NFTs where each is unique).
OpenZeppelin
The leading open-source library providing battle-tested ERC-20 and other smart contract implementations.
Decimals
The ERC-20 field specifying token divisibility — standard is 18 decimals (1 token = 10^18 smallest units).

Disclaimer

This is educational content about the ERC-20 token standard. Understanding ERC-20 helps with presale research but doesn't guarantee investment quality. Not financial advice.

Yara Fernandez
Yara Fernandez Crypto Regulation & Policy Press Release Expert
521+ articles
1 Year experience
Regulation specialty

Yara Fernandez dives into NFT drops, Latin American crypto art, and GameFi projects that bridge culture and blockchain. As a respected name in crypto journalism, she delivers valuable insights on NFT and Web3 topics from around the world. Her work blends deep research with simplicity, making it easy for readers to understand the fast-moving world of crypto. She focuses on topics related to NFT and Web3 reporting and regularly covers emerging trends, technology updates, and community stories.

✍️ WHAT'S YOUR OPINION?
Frequently Asked Questions

Have questions? We have answers!

ERC-20 stands for 'Ethereum Request for Comments 20' — the 20 being the proposal number. It's a technical standard defining the rules that fungible tokens on Ethereum must follow to be compatible with wallets, DEXs, and other smart contracts. Almost every crypto presale token on Ethereum (and EVM-compatible chains like Base, Arbitrum, Polygon) is an ERC-20 token. The standard was proposed by Fabian Vogelsteller and Vitalik Buterin in 2015 and has become the foundation of the entire token economy.
Required ERC-20 functions: totalSupply() — returns total token supply; balanceOf(address) — returns token balance for any wallet; transfer(to, amount) — sends tokens to another address; approve(spender, amount) — grants a contract permission to spend your tokens; transferFrom(from, to, amount) — executes an approved spend; allowance(owner, spender) — returns remaining approved spending limit. Optional but standard: name() returns token name; symbol() returns ticker; decimals() returns divisibility precision. These six required functions ensure any ERC-20 token works seamlessly with MetaMask, Uniswap, Aave, and every other Ethereum DApp.
BEP-20 (BNB Chain's token standard) is technically nearly identical to ERC-20 — it was deliberately designed for compatibility. Both use the same six core functions with the same signatures. Key differences: ERC-20 tokens exist on Ethereum network; BEP-20 tokens exist on BNB Smart Chain. Gas is paid in ETH for ERC-20 transactions; gas is paid in BNB for BEP-20 transactions. The same Solidity code compiles to both standards. Cross-chain: a token can exist as both ERC-20 on Ethereum and BEP-20 on BSC as separate contract deployments, bridgeable via protocols like Wormhole or Multichain.
ERC-20 approval (the approve() function) grants a smart contract permission to spend tokens from your wallet on your behalf. When you swap tokens on Uniswap, the DEX contract needs your approval to move tokens; when you supply liquidity, the pool contract needs approval; when you buy in a presale, the presale contract may need approval to receive your contribution token. The approval transaction costs a small gas fee and must be done before the actual action. Risk: unlimited approvals allow the contract to spend all your tokens forever — best practice is to approve only what you need, and revoke old approvals using revoke.cash.
ERC-20 decimals define how divisible a token is. The standard is 18 decimals — meaning 1 token is stored internally as 1,000,000,000,000,000,000 (10^18) smallest units. Why this matters: a token priced at $0.000000001 per 'raw unit' is actually $1 per whole token (with 9 decimals). Wallet displays divide by 10^decimals to show human-readable amounts. For presale investors: when a project claims '1 billion token supply,' verify this against the totalSupply() function output divided by 10^decimals. If totalSupply returns 1,000,000,000,000,000,000,000,000,000 with 18 decimals, that's actually 1 billion tokens — matching the claim.
ERC-20: fungible tokens — each token is identical and interchangeable (1 USDT = any other 1 USDT). Used for: presale tokens, governance tokens, utility tokens, stablecoins. ERC-721: non-fungible tokens (NFTs) — each token is unique with a distinct ID. Used for: digital art, gaming items, domain names. ERC-1155: multi-token standard supporting both fungible and non-fungible tokens in one contract. Used for: gaming items (some fungible like health potions, some unique like specific weapons). Presale investors primarily deal with ERC-20 tokens; game NFT presales involve ERC-721; advanced GameFi uses ERC-1155.
ERC-20 verification on Etherscan: go to etherscan.io, paste the token contract address in search. Key checks: Contract tab — green checkmark means source code is verified and readable; Token Tracker section shows name, symbol, total supply, and decimals; Holders tab shows distribution of token ownership; Read Contract — call totalSupply() and divide by 10^decimals to verify supply claims; and look for owner() function to check admin control status. For safety: search source code for 'mint,' 'pause,' and 'blacklist' functions — their presence and access control determines centralization risk.
ERC-20 risk functions: mint() — creates new tokens; if callable by a single owner without supply cap, creates unlimited inflation risk. pause() — freezes all transfers; legitimate for emergency response but dangerous if owner can pause permanently. blacklist() — blocks specific addresses from transacting; legitimate for anti-bot if time-limited. setFee() — changes transfer tax; safe only if capped in contract. upgradeTo() — replaces contract logic; safe only with governance timelock. Owner control: a single address (EOA) with admin control over all these functions is maximum centralization risk; multisig or renounced ownership is safer.
OpenZeppelin is the leading open-source library for Ethereum smart contract development, providing battle-tested ERC-20 implementation. Most reputable token contracts are built using OpenZeppelin's ERC-20 as the base: the code has been audited extensively, used in thousands of deployed contracts, and has undergone years of real-world security testing. When reviewing an ERC-20 presale token contract: if it imports from '@openzeppelin/contracts/token/ERC20/ERC20.sol', the base implementation is reliable. Custom ERC-20 implementations from scratch are higher risk — they may introduce bugs in the fundamental token mechanics.
Adding ERC-20 tokens to MetaMask: (1) Ensure MetaMask is on Ethereum Mainnet or the correct EVM network; (2) Get the token contract address from the official project source; (3) In MetaMask, scroll to bottom of Assets tab → click 'Import Tokens'; (4) Click 'Custom Token' tab; (5) Paste the ERC-20 contract address — MetaMask auto-fills name and decimals; (6) Click 'Add Custom Token' → 'Import Tokens'. Token balance appears immediately if you've already claimed. For Base, Arbitrum, or other L2 networks: first switch MetaMask to the correct network before importing.
The approve/transferFrom pattern: when a DEX or presale contract wants to move your tokens, you first approve a spending limit (approve transaction), then the contract calls transferFrom to actually move the tokens. Security implications for presales: if you accidentally approve a malicious presale contract for unlimited tokens, it can drain all your tokens of that type at any future time. Best practices: revoke approvals for completed transactions at revoke.cash; use exact amounts rather than unlimited approvals when prompted; verify the contract address you're approving against the project's official site; and maintain separate wallets for presale activity vs long-term holdings.
ERC-20 transfer tax is implemented inside the token's _transfer() function — a percentage fee deducted on each buy or sell, sent to designated addresses. Unlike BEP-20 (BSC) where transfer taxes are common, Ethereum mainnet tokens less frequently use transfer taxes due to high gas costs making them economically painful. However, some Ethereum tokens (especially those bridged from BSC) do include them. For investors: always check for transfer taxes before investing (visible in contract source code or Etherscan's 'Read Contract' functions); calculate your break-even multiple including both buy and sell taxes; and verify that the tax rate cannot be changed by the contract owner post-investment.
ERC-20's historical significance: standardizing tokens enabled DeFi — Uniswap, Aave, Compound, and every DeFi protocol works because all tokens follow the same interface; enabled composability — any ERC-20 can be combined with any protocol without custom integration; created the ICO boom — easy token creation enabled thousands of projects to fundraise; established the model that BEP-20, SPL, and other token standards copied; and created a foundation of hundreds of billions in ecosystem value. Without ERC-20 standardization, the blockchain ecosystem would be fragmented incompatible silos — the standard enabled the composable, interconnected DeFi ecosystem that exists today.
Improved token standards: ERC-4626 — tokenized vault standard for yield-bearing positions (improves DeFi composability); ERC-4337 — account abstraction (not a token standard but improves UX significantly); ERC-1363 — 'payable token' enabling single-transaction approve+callback; and ERC-777 — advanced ERC-20 with hooks (less adopted due to reentrancy risks discovered post-publication). For presale investors: most tokens remain ERC-20 for simplicity and maximum compatibility; newer standards add features but also complexity. Any new presale token using ERC-777 or other non-standard implementations warrants extra scrutiny of potential new attack vectors.
TelegramBanner header
Have Questions?

Our team will answer all your questions. We ensure a quick response.

Contact Us